<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <!-- 开发环境版本，包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
  </head>
  <body>
    <div id="app">
      <!-- View -->
      <p>
        {{ message }}
      </p>
      <!-- 完整写法 -->
      <p v-on:click="clickMe">点击我呀</p>
      <!-- 简化写法 @就相当于v-on -->
      <button @click="clickMe2">我是按钮</button>
      <br />
      <br />
      <button @click="clickMe3('你好')">我是按钮2</button>
      <br />
      <br />
      <!-- 接在事件名称后面的.出来的叫做事件修饰符，一般用来对事件进行具体处理 -->
      <!-- <input type="text" @keydown.enter="keydown" /> -->
      <input type="text" @keydown.13="keydown" />
      <div
        style="width: 200px; height: 200px; background-color: red"
        @click="redClick"
      >
        <div
          style="width: 100px; height: 100px; background-color: green"
          @click.stop="greenClick"
        ></div>
      </div>
    </div>

    <script>
      // ViewModel
      new Vue({
        el: '#app',
        // model
        data: {
          message: 'Hello'
        },
        // 方法要写在 methods 中，并且是 methods，不是 method
        methods: {
          clickMe() {
            console.log('---clickMe---')
            // Vue2是面向对象编程的，实例里面要拿到实例，通过this
            this.message = '你好，世界'
          },
          clickMe2(e) {
            console.log('---e---', e)
          },
          clickMe3(value) {
            this.message = value
          },
          keydown(e) {
            console.log('---e---', e)
          },
          redClick() {
            console.log('---redClick---')
          },
          greenClick() {
            console.log('---greenClick---')
          }
        }
      })
    </script>
  </body>
</html>
